<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>

    // Symbol 每个属性的名字都是独一无二的 从根本上防止属性名的冲突 (JS新增数据类型之一)
    // ES6 引入了一种新的原始数据类型Symbol，表示独一无二的值

    // 对象的属性名现在可以有两种类型，一种是原来就有的字符串，另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型，就都是独一无二的，可以保证不会与其他属性名产生冲突。

    // var zhang = {
    //     name:"张三",
    //     age:18,
    //     say:function(){
    //         console.log(this.name,this.age);
    //     }
    // }

    // zhang["name"] = "lisi";
    // console.log(zhang);


    // 如何创建symbol数据?   Symbol 值通过Symbol()函数生成
    // 主要: 基本上，它是一种类似于字符串的数据类型

    // var s = Symbol();
    // console.log(s);
    // // console.log(typeof s);  // "symbol"

    // var s1 = Symbol();
    // console.log(s1);

    // console.log(s == s1);


    // Symbol函数可以接受一个字符串作为参数，表示对 Symbol 实例的描述，主要是为了在控制台显示，或者转为字符串时，比较容易区分。

    var s1 = Symbol("a");
    var s2 = Symbol("b");

    console.log(s1,s2);


    // 获取Symbol数据的描述
    console.log(s1.description);
    console.log(s2.description);


</script>
</html>